// --------------------USER--------------------------
var Movie = require('../models/movie');
var Category = require('../models/category');

// 首页 - 查询所有分类
exports.show = function (req, res) {
  // index page
  // console.log('user in session: ');
  // console.log(req.session.user);
  Category
    .find({})
    .populate({
      path: 'movies',
      select: 'title poster', //指定填充的字段名
      options: {
        limit: 6
      }
    })
    .exec(function (err, categories) {
      if (err) {
        console.log(err.code, err.message);
      }
      // pug/jade会自动读取res.locals中的本地变量用来渲染视图的
      // 这里没有使用app.locals 是怕全局变量覆盖
      res.render('index', {
        title: '首页',
        categories: categories,
      });
    });

};

// 查询特定分类
exports.search = function (req, res) {

  var categoryId = req.query.category;
  // 分页
  var page = parseInt(req.query.page) || 1;
  var pageSize = 2;
  var startIndex = (page - 1) * pageSize;
  var searchName = req.query.search;

  // index page
  // console.log('user in session: ');
  // console.log(req.session.user);

  if (searchName) { // header 的搜索框
    Movie.paginate({
      title: new RegExp(searchName + '.*', 'i')
    }, {
      'page': page,
      'limit': pageSize
    }, function (err, result) {
      console.info(result);
      if (err) {
        console.log(err.code, err.message);
      }
      res.render('results', {
        title: '墙裂推荐',
        'keyword': searchName,
        'movies': result.docs,
        'totalPage': Math.ceil(result.total / pageSize),
        'currentPage': page,
        'searchName': searchName
      });
    });
  }

  if (categoryId) { // 首页点击分类进入特定分类的电影列表页面
    Category
      .find({
        _id: categoryId
      })
      .populate({
        'path': 'movies',
        'select': 'title poster', //指定填充的字段名
      })
      .exec(function (err, categories) {
        if (err) {
          console.log(err.code, err.message);
        }
        var category = categories[0] || {};
        var movies = category.movies || []; // 当前分类下的所有电影
        // 由于populate的api暂时有bug
        // 暂时先切分出当页数据用于显示
        var results = movies.slice(startIndex, startIndex + pageSize);
        // pug/jade会自动读取res.locals中的本地变量用来渲染视图的
        // 这里没有使用app.locals 是怕全局变量覆盖
        res.render('results', {
          title: '按分类查找',
          'keyword': category.name,
          'categoryId': categoryId,
          'movies': results,
          'totalPage': Math.ceil(movies.length / pageSize),
          'currentPage': page
        });
      });
  }

};
